package movimiento.patrones;

import juego.Escenario;
import movimiento.*;
import auxiliares.Vector;

/*
 * Patron de movimiento en zig zag. Se mueve en los ejes x e y segun la velocidad 
 * dada. Al llegar a los bordes laterales del escenario, invierte el sentido de la
 * componente x de la velocidad, yendo hacia el otro lado.
 */
public class ZigZag extends PatronMovimiento {

	@Override
	public Posicion calcularNuevaPosicion(Posicion posicion, Vector velocidad) {
		int xFinal, yFinal;
		int xInicial = posicion.getEnX();
		int yInicial = posicion.getEnY();

		xFinal = xInicial + velocidad.getComponenteX();
		if (xFinal >= Escenario.getInstance().getMaxX() | xFinal <= 0) {
			velocidad.setComponenteX(velocidad.getComponenteX() * -1);
			xFinal = xInicial + velocidad.getComponenteX();
		}
		yFinal = yInicial + velocidad.getComponenteY();
		return new Posicion(xFinal, yFinal);
	}

}
